package algorithm.leetcode.I1to100;

public class Q11 {

    public int maxArea(int[] height) {
        int left = 0, right = height.length-1, ans = 0;

        while (left < right) {
            // 如果右端大于左端,那么尝试移动左端
            // 为什么移动矮的那端呢?假设移动高的那端,水高一定不大于矮的那端高度,而横跨变成了上一轮宽度-1,显然不可能是最大存水量,比本轮还小
            if (height[left] < height[right]) {
                ans = Math.max(ans, (right-left)*height[left]);
                left++;
            }
            // 如果左端大于右端,那么尝试移动右端
            else {
                ans = Math.max(ans, (right-left)*height[right]);
                right--;
            }
        }
        return ans;
    }
}
